package grafica;

import modulo.Dardo;


public class DartLinea extends DartVista {
	public DartLinea(){
		super();
		Forma v[]=new Forma[1];
		v[0]=new LineaVista(new linea());
		super.setElencoForme(v);
		
	}
	public DartLinea(Dardo dardo) {
		super(dardo);
		Forma v[]=new Forma[1];
		
		v[0]=new LineaVista(new linea(super.getDardo().getXi(), 
							super.getDardo().getYi(), 
							super.getDardo().getXf(),
							super.getDardo().getYf()));
		super.setElencoForme(v);
		// TODO Auto-generated constructor stub
	}
	@Override
	public void setDardo(Dardo dardo) {
		super.setDardo(dardo);
		LineaVista vis=(LineaVista)super.getElencoForme()[0];
		vis.getLine().setYf(dardo.getYf());
		vis.getLine().setXi(dardo.getXi());
		vis.getLine().setXf(dardo.getXf());
		vis.getLine().setYi(dardo.getYi());
	}
	
	//metodo per il tiro approssimato
	/*public void Draw(Graphics oggetto) {
		LineaVista line=(LineaVista)super.getForme()[0];
		double m=((double)(super.getDardo().getYf()-super.getDardo().getYi()))/(super.getDardo().getXf()-super.getDardo().getXi());
		linea li=line.getLine();
		double raggioColpo=li.lunghezza();
		//System.out.println(li.lunghezza()+" "+super.getDardo().getRaggio());
		if(raggioColpo>super.getDardo().getRaggio()){
			double xM=super.getDardo().getRaggio()*(super.getDardo().getXf()-super.getDardo().getXi())/li.lunghezza();
			li.setXf((int)xM+super.getDardo().getXi());
			li.setYf((int)(m*(xM)+super.getDardo().getYi()));
			//System.out.println(li.getXf()+" "+li.getYf());
		}
		System.out.println(li.getXf()+" "+li.getYf());
		line.Draw(oggetto);
	
	/*ouble m=((double)(super.getDardo().getYf()-super.getDardo().getYi()))/(super.getDardo().getXf()-super.getDardo().getXi());
		linea li=new linea(super.getDardo().getXi(), super.getDardo().getYi(),super.getDardo().getXf(),super.getDardo().getYf());
		double raggioColpo=li.lunghezza();
		if(raggioColpo>super.getDardo().getRaggio()){
			int xM=(super.getDardo().getRaggio()*super.getDardo().getXf())/super.getDardo().getRaggio();
		}
		line.Draw(oggetto);*/
		/*double lunghezza=(super.getDardo().getXf()-super.getDardo().getXi())/4;
		li.setXf(0);
		li.setYf(0);
		LineaVista stampa=new LineaVista(li);
		for(int i=1;i<=4;i++){
			li.setXf((int)(super.getDardo().getXi()+lunghezza*i));
			li.setYf((int)(super.getDardo().getYi()+lunghezza*m*i));
			System.out.println(li.getXf()+" ya "+li.getYf()+" M "+m);
			stampa.Draw(oggetto);
		}
		Timer time=new Timer(5000, new AscoltatoreDardo(super.getDardo()));
		time.start();*/
	//}
}
